Process modeling refers generally to the formalization of a method(s) that defines tasks, as well as rules for controlling whether, when, and how the tasks are implemented. For example, a business process such as receipt of inventory at a warehouse may be formalized, or modeled, to define tasks related to how products are received, how corresponding information regarding the products is stored in a database, and how the products are distributed for storage within the warehouse. Virtually any process, business or otherwise, may be modeled in this way. The tasks of such process models may be implemented by human and/or computer (e.g., software applications) actors, and process execution engines may be used to implement particular instances of the process models and ensure that the modeled tasks are performed correctly, and in the correct order, and that instance-related data is managed appropriately within each process model instance.
An example of an area in which such process models are implemented includes the coordination and/or packaging of multiple software applications (and/or individual functionalities of the software applications) to obtain a desired result. Such Packaged Composite Applications (PCAs) allow developers to build new applications by using existing features of multiple, existing applications. For example, a developer may use customer objects and related functionality from a Customer Relationship Management System, and product information from a Product Management System, in order to provide customers with certain product information that may not otherwise be available.
In other words, such a process-oriented composite application may be used to aggregate functionality from a number of other applications, and to coordinate such applications according to a process model, e.g., a business process model. In this way, a composite functionality may be provided to a user, in a predictable, efficient, and useful manner.